#ifndef _GSEARCHNODE_H_
#define _GSEARCHNODE_H_

#include <iostream>
#include <vector>

#include "gsupplyLinkSolutionPartial.h"

using namespace std ;

class GSolverBBPv3 ;
class GSolverBBPv3NoWait ;
class GSolverBBPv3NoWaitMaster ;
class GSolverBBPv3NoWaitSlave ;
class GLowerBound ;

/**
 * A node of the search tree
 */ 
class searchnode{
 private:
  int nbrbatch ; // number of batches
  int job ;      // job to place
  vector<double> tabBatchRemainingCapacity ;
  GSupplyLinkSolutionPartial sol ;

  friend class GSolverBBPv3 ;
  friend class GSolverBBPv3NoWait ;
  friend class GSolverBBPv3NoWaitMaster ;
  friend class GSolverBBPv3NoWaitSlave ;
  friend class GLowerBound ;

  friend ostream& operator<<(ostream&,const searchnode&) ;

} ;

ostream& operator<<(ostream&,const searchnode&) ;

#endif
